The field of the invention is programmed machines which store programs and other data in addressable memory devices, and particularly, machines in which the user can readily add or exchange memory devices of various sizes and types.
In programmable machines such as programmable controllers the user employs a program panel to develop a control program which is stored in a memory device such as a random access memory (RAM) or a read-only memory (ROM). The control program which is developed may be very short in some applications (less than 1K memory lines) while in other applications it may become quite lengthy (16K memory lines or more). Also, some portions of the control program may be fixed, and thus suitable for employing read-only memory devices, whereas other portions may undergo periodic change and be more suitably stored in read/write memory devices. It is desirable, therefore, to allow the user flexibility in the size of the memory he may use and the type of memory devices he may employ.
Nearly all programmed machines have a limited amount of address space and most of this space is occupied by memory devices. In both microprocessor-based and minicomputer-based machines, for example, a 16-bit address bus is employed which provides a 64K address space. Although address expansion techniques are well known, these require additional hardware and more execution time. In providing a flexible system in which the user may interchange memory devices of varying sizes, therefore, it is important that the available address space be efficiently used.